import sys
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk

import pygame

from 外星人入侵.alien_invasion import start

# music 走起
# 初始化 pygame
pygame.mixer.init()
# 播放音乐文件
pygame.mixer.music.load('./musics/怪物入场.mp3')
pygame.mixer.music.play(-1)
pygame.mixer.music.set_volume(0.7)
# 存储指定文件里面的数据
# 函数的部分
def func1():
    # 获取账号和密码输入框中的内容
    account = entry1.get()
    password = entry2.get()
    if account.strip() == '' or password.strip() == '':
        messagebox.showinfo("警告", "勇士, 账号和密码不可为空哦")
        return
    # 执行相应的操作
    if check(account, password):
        messagebox.showinfo("登录成功", "勇士,欢迎回来！")
        pygame.mixer.music.stop()
        root.destroy()
        start().run_game()
        # sys.exit()
    else:
        messagebox.showerror("登录失败", "账号或密码错误！")

def func2():
    account = entry1.get()
    password = entry2.get()
    if account.strip() == '' or password.strip() == '':
        messagebox.showinfo("警告", "勇士, 账号和密码不可为空哦")
        return
    # 打开文件，如果不存在则创建
    file = open("userName.txt", "a")
    # 写入文本
    file.write(account + "," + password + "\n")
    # 关闭文件
    file.close()  # 这里一定要注意 关闭文件的操作
    messagebox.showinfo("注册成功", "注册成功,你现在是一名勇士了,快去保卫家园吧")

def check(account, password):
    with open("userName.txt", "r") as f:
        for line in f:
            line = line.strip()
            t = line.split(",")
            if t[0] == account and t[1] == password:
                return True
    return False


# 创建窗口 实例化一个对象
root = Tk()

# 窗口的大小和位置
root.geometry("600x400+374+182")

# 设置窗口的标题
root.title("外星龙年：守护者的使命")

# 加载背景图片
image = Image.open('./images/back05.png')
photo = ImageTk.PhotoImage(image)

# 创建画布
canvas = Canvas(root, width=600, height=400)
canvas.pack()

# 在画布上绘制背景图片
canvas.create_image(0, 0, image=photo, anchor=NW)

# 添加标签并进行绝对定位
label1 = Label(root, text="账号", bg='white')
label1.place(x=190, y=150)
label2 = Label(root, text="密码", bg='white')
label2.place(x=190, y=190)

# 添加输入框并进行绝对定位
entry1 = Entry(root)
entry1.place(x=240, y=150)

entry2 = Entry(root)
entry2.place(x=240, y=190)

# 添加按钮并进行绝对定位
button1 = Button(root, text="登录", font=("宋体", 15), command=func1)  # 登录操作
button1.place(x=200, y=250)

button2 = Button(root, text="注册", font=("宋体", 15), command=func2)  # 注册操作
button2.place(x=300, y=250)

# 显示窗口
root.mainloop()